package domainmodel;


import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;

public class Kaart_Test {
	
	private Kaart kaart;
	
	@Before
	public void setUp() throws Exception {
		kaart = new Kaart("Harten", 2);
	}
	
	@Test
	public void test_setType_Geldige_waarde_word_aanvaard(){
		kaart.setType("Harten");
		assertEquals(kaart.getType(), "Harten");
		
		kaart.setType("Koeken");
		assertEquals(kaart.getType(), "Koeken");
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_setType_Foutieve_waarde_word_niet_aanvaard(){
		kaart.setType("Hart");
	}
	
	@Test
	public void test_setNummer_Geldige_waarde_word_aanvaard(){
		kaart.setNummer(12);
		assertEquals(kaart.getNummer(), 12);
	}
	
	@Test
	public void test_setNummer_Rand_waarde_1_word_aanvaard(){
		kaart.setNummer(1);
		assertEquals(kaart.getNummer(), 1);
	}
	
	@Test
	public void test_setNummer_Rand_waarde_13_word_aanvaard(){
		kaart.setNummer(13);
		assertEquals(kaart.getNummer(), 13);
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_setNummer_Te_lage_waarde_word_niet_aanvaard(){
		kaart.setNummer(0);
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_setNummer_Te_hoge_waarde_word_niet_aanvaard(){
		kaart.setNummer(17);
	}
	
	@Test
	public void test_isOmgedraaid_is_true(){
		kaart.draaiOm();
		assertEquals(kaart.isOmgedraaid(), true);
	}
	
	@Test
	public void test_isOmgedraaid_is_false(){
		assertEquals(kaart.isOmgedraaid(), false);
	}
	
	@Test
	public void test_equals_is_true(){
		Kaart k1 = new Kaart("Harten", 2);
		assertEquals(kaart.equals(k1), true);
	}
	
	@Test
	public void test_equals_is_false(){
		Kaart k1 = new Kaart("Koeken", 12);
		assertEquals(kaart.equals(k1), false);
	}
	
	@Test 
	public void test_Constructor_Geldige_setup(){
		kaart = new Kaart("Koeken", 6);
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_Constructor_Ongeldig_type(){
		kaart = new Kaart("Boer", 2);
	}
	
	@Test (expected = IllegalArgumentException.class)
	public void test_Constructor_Ongeldig_nummer(){
		kaart = new Kaart("Harten", -3);
	}
}
